/* 仿爱奇艺·奇观 功能事件 */
export default {
	data() {
		return {
			// 本地截图和云端截图-图片临时地址
			PicSrc: '',
			// 仿爱奇艺·奇观-识图百科接口
			ShiTuBaiKeApiUrl: this.aiShiTuApiUrl,//获取Ai识图api接口地址
			//ShiTuBaiKeApiUrl:'http://iqy.kbtv.top/qiguan/fiqy-sg-shitu-baike2.php',
			// 百科信息
			BaiKeData:{},
			// 百科星图webview是否开启
			BaiKeWebView:false,//false时显示百科信息，true时显示百科星图webview浏览器
			// 百科星图配置
			BaiKeStarMap:{
				// 星图地址
				url:'https://baike.baidu.com/starmap/view',
				// 地址后的参数
				data:'&pageType=relation&starMapFrom=lemma_content_starMap_relation',
				// 合并后的地址
				WebViewUrl:'',
				// 完整地址参考：https://baike.baidu.com/starmap/view?lemmaTitle=欧阳震华&lemmaId=1368888&pageType=relation&starMapFrom=lemma_content_starMap_relation
			},
			// WebView进度条样式
			webviewStyles: {
				progress: {
					color: '#FF3333'
				}
			},
			// 截图后显示的截图view盒子
			screenShotView:false,
			// 截图按钮被点击
			ShotTap:false,//用于修复安卓截图时，会暂停视频，然后暂停广告就显示出来了，截图也是截的广告，这是不行的
		}
	},
	watch:{
		// 监听ai识图接口发生变化
		aiShiTuApiUrl:{
			handler(newApiUrl,oldApiUrl){
				if (newApiUrl){
					this.ShiTuBaiKeApiUrl = this.aiShiTuApiUrl
				}else {
					// 如果没有，则使用播放器内置的
					this.ShiTuBaiKeApiUrl = 'http://iqy.kbtv.top/qiguan/fiqy-sg-shitu-baike2.php'
				}
			},
			immediate:true,
		},
		// 监听屏幕截图src发生变化，调用方法
		PicShiTuSrc:{
			handler(newPic,oldPic){
				if (newPic){
					//第一步截图事件已经抽离到页面外面去调用了
					
					
					// 写入截图地址
					this.PicSrc = newPic
					// 打开截图后显示的View盒子
					this.screenShotView = true
					
					// 设置播放（安卓截图后会自动暂停视频，所以需要再设置播放）
					this.play()
					
					/* 2021-1021-0020 调整方案
					 * @1. 截图后显示的View盒子上有两个功能按钮
					 * @2. 分享? ， AI识图?
					 * @3. 让用户手动选择一个或者关闭
					 */
				}
			},
			immediate:true,//普通监听（可监听到第一次绑定的变化）
		},
		isPlay(e){
			if (e==true){
				// 还原为false，因为用户也可能点击取消，所以要这里写还原false
				this.ShotTap = false
			}
		}
	},
	methods: {
		// （旧版-目前用不到）已调整，新版在这个方法下面
		async PicShiTuChange(type) {
			/* 2021-1019-2150 调整识图百科
			 * @1. 通过事件回调回去，让页面外面调用截图
			 * @2. 页面外面截图完成把图片传入进来
			 * @3. 监听到PicShiTuSrc变化，就执行识图
			 */
			let e = {
				Events:'PicShiTu',//识图
				msg:'点击了识图百科'
			}
			this.$emit('changeMyVideo',e)
			
			console.log(type)
			// @第4步>>当识图完成后，打开“仿爱奇艺·奇观”-抽屉
			
			// 屏幕截图
			//await this.SetScreenShot()
			// 上传截图到云空间
			//await this.UploadFilePic()
			// 将截图云地址上传至识图百科并获取数据
			//await this.getFangiqyShiTuBaiKe()
			// 识图完成，打开“仿爱奇艺·奇观”-抽屉
			//await this.openDrawerItem('qiguanBaiKe')
			
			// if(this.platform_mobile == 'android'){
			// 	this.AndroidScreenShot()
			// }else if(this.platform_mobile == 'ios'){
			// 	this.iosScreenShot()
			// }
		},
		//（新版）2021-1021-2353调整此方案
		// 截屏图标按钮被点击
		screenShotTap(){
			/* 2021-1021-2353 调整此方案
			 * @1. 通过事件回调回去，让页面外面调用截图
			 * @2. 页面外面截图完成把图片传入进来
			 * @3. 监听到PicShiTuSrc变化后
			 * @4. 就开启截图后显示的截图view盒子
			 * @5. 截图view盒子上有两个功能按钮
			 * @6. 分享? ，识图? 让用户自主选择
			 */
			let e = {
				Events:'screenShot',//识图
				msg:'用户点击了截图/截屏按钮'
			}
			this.$emit('changeMyVideo',e)
			// 截图按钮被点击 = true
			this.ShotTap = true
		},
		// 关闭截图后显示的截图view盒子
		closeScreenShotViewTap(){
			this.screenShotView = false
		},
		// 点击了“AI识图”
		async AiShiTuTap(){
			// 关闭截图后显示的View盒子
			this.screenShotView = false
			//上传截图到云空间
			await this.UploadFilePic()
			//将截图地址上传至识图百科并获取数据
			await this.getFangiqyShiTuBaiKe()
			//识图完成，打开“仿爱奇艺·奇观”-抽屉
			await this.openDrawerItem('qiguanBaiKe')
		},
		
		
		
		// 将截屏图片上传至uniCloud云储存
		async UploadFilePic() {
			return new Promise((resolve,reject) => {
				uni.showLoading({
					title:'截图上传中',
				})
				let _this = this
				// 截屏图片路径
				let filePath = this.PicSrc
				// 截取视频当前时间作为图片名称
				let filePathName = this.timeUpdate.currentTime
				// 进行上传操作
				// callback方式，与promise方式二选一即可
				uniCloud.uploadFile({
					filePath: filePath,
					cloudPath: filePathName+'a.jpg',
					onUploadProgress: function(progressEvent) {
						console.log(progressEvent);
						var percentCompleted = Math.round(
							(progressEvent.loaded * 100) / progressEvent.total
						);
					},
					success(res) {
						console.log(res)
						// https://uniapp.dcloud.io/uniCloud/storage?id=uploadfile
						// fileID 文件唯一 ID，用来访问文件，建议存储起来
						_this.PicSrc = res.fileID //将远程路径写入PicSrc
						console.log('res.fileID: 下面是图片远程路径')
						console.log(res.fileID)
						//_this.getFangiqyShiTuBaiKe()
						resolve(res.fileID)
					},
					fail(err) {
						console.log('图片上传失败')
						console.log(err)
						uni.hideLoading()
						// 不延时一下的话，uniShowToast也会被关闭
						setTimeout(() => {
							_this.uniShowToast('图片上传失败')
						},100)
					},
					complete() {
						//uni.hideLoading()
					}
				})
			}) 
		},
		// 请求仿爱奇艺·奇观-识图百科接口
		async getFangiqyShiTuBaiKe(){
			return new Promise((resolve,reject) => {
				uni.showLoading({
					title:'正在识别中',
				})
				uni.request({
					url:this.ShiTuBaiKeApiUrl,
					method:'GET',
					data:{
						pic:this.PicSrc
					},
					dataType:'json',
					success: (res) => {
						//console.log(res)
						if (res.data && res.data.code == 200){
							console.log('识图成功 - 仿爱奇艺·奇观')
							this.BaiKeData = res.data
							console.log(res)
							resolve(res)
							uni.showToast({
								title:'识别成功',
								icon:'none'
							})
						}else if (res.data.code == 404){
							console.log('图片无法识别')
							reject(res.data.msg)
							uni.showToast({
								title:res.data.msg,
								icon:'none'
							})
						}
					},
					fail: (err) => {
						console.log('识图失败')
						console.log(err)
					},
					complete() {
						uni.hideLoading()
					}
				})
			})
		},
		// 屏幕截图
		async SetScreenShot(){
			return new Promise((resolve,reject) => {
				const epiiShot = uni.requireNativePlugin('epii-screen-shot');
				epiiShot.screenShot({
					base64: false,
					quailty: 100
				}, (data) => {
					// uni.showModal({
					// 	content: JSON.stringify(data.img)
					// })
					console.log(JSON.stringify(data.img))
					this.PicSrc = data.img
					resolve(data.img)
				})
			})
		},
		// 安卓环境 截屏(目前插件已统一)
		AndroidScreenShot() {
			// 暂且用不到
		},
		// ios环境 截屏(目前插件已统一)
		iosScreenShot() {
			// 暂且用不到
		},
		
		
		// 打开“百科星图WebView浏览器”
		openBaiKeStarMapWebView(BaiKeName,BaiKeId){
			// 获取人物名称
			let Title = BaiKeName //this.BaiKeData.name
			// 获取人物ID
			let ID = BaiKeId //this.BaiKeData.baikeid
			// 获取百科星图地址后的参数
			let Data = this.BaiKeStarMap.data
			// 写入百科星图完整地址
			let url = this.BaiKeStarMap.url+'?lemmaTitle='+Title+'&lemmaId='+ID+Data
			this.BaiKeStarMap.WebViewUrl = url
			// 百科星图webview是否开启
			this.BaiKeWebView = true
		},
		// 关闭“百科星图WebView浏览器”
		closeBaiKeStarMapWebView(){
			this.BaiKeWebView = false
		}
	}
}
